package user

import (
	"gitee.com/micro-plat/codeless/apiserver/meta/biz/user"
	"github.com/micro-plat/hydra"
)

// LoginHandle 用户登录的HTTP处理函数
func LoginHandle(ctx hydra.IContext) interface{} {
	if err := ctx.Request().Check("user_name", "password"); err != nil {
		return err
	}
	tenantID := ctx.Request().GetInt("tenant_id")
	userName := ctx.Request().GetString("user_name")
	password := ctx.Request().GetString("password")

	if err := user.Login(tenantID, userName, password); err != nil {
		return err
	}

	// 登录成功，可以返回用户信息或简单的成功消息
	// 这里为了简单起见，只返回一个成功消息
	return map[string]interface{}{"message": "登录成功"}
}

// GetUserByUserNameHandle 根据用户名获取用户信息的HTTP处理函数
func GetUserByUserNameHandle(ctx hydra.IContext) interface{} {
	if err := ctx.Request().Check("user_name"); err != nil {
		return err
	}

	tenantID := ctx.Request().GetInt("tenant_id")
	userName := ctx.Request().GetString("user_name")
	user, err := user.GetByUserName(tenantID, userName)
	if err != nil {
		return err
	}

	return user
}
